#!/bin/bash
###############################################################################
# @用例ID: 20230525-154056-556766041
# @用例名称: mysql-test
# @用例级别: 3
# @用例标签:
# @用例类型: 功能
###############################################################################
[ -z "$TST_TS_TOPDIR" ] && {
    TST_TS_TOPDIR="$(realpath "$(dirname "$0")/..")"
    export TST_TS_TOPDIR
}
source "${TST_TS_TOPDIR}/tst_common/lib/common.sh" || exit 1
###############################################################################

g_tmpdir="$(mktemp -d)"
  
tc_setup() {
    msg "this is tc_setup"
    # @预置条件：运行MySQL

    # 检查是否安装了MySQL
    assert_true command -v mysql >/dev/null 2>&1

    # 输出MySQL的版本号
    mysql_version=$(mysql -V |awk '{print $3}' | awk -F, '{print $1}')
    echo "MySQL version: $mysql_version"

    # 启动MySQL
    assert_true sudo service mysql start
    

    return 0
}

do_test() {
    msg "this is do_test"
    
    # 运行MySQL测试
    
    # @测试步骤:1:查找mysql安装路径，并进入mysql-test文件夹准备进行测试
    # @预期结果1：成功进入mysql-test文件夹
    
    mysql_install_path=$(which mysql)
    cd $(dirname $(which mysql))
    cd ..
    assert_true cd mysql-test

    # @测试步骤:2:运行mysql-test-run即可运行mysql测试，并记录输出结果
    # @预期结果:2:成功运行mysql-test-run
    ./mysql-test-run  2>&1 | tee test_output.txt

    assert_true [ $? -eq 0 ]

    # @测试步骤:3:检查测试结果，根据反馈判断测试是否成功
    # @预期结果:3:测试完全成功
    
    assert_true grep -q "All tests" "test_output.txt";
    

    return 0
}



tc_teardown() {
    msg "this is tc_teardown"
    #关闭MySQL
    assert_true sudo service mysql stop

    rm test_output.txt 
    rm -rfv "$g_tmpdir" || return 1
    return 0
}


###############################################################################
tst_main "$@"
###############################################################################
